/*
 * Copyright (c) 2018-2999 九五云信息科技有限公司 All rights reserved.
 *
 * https://www.gz-yami.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

package com.yami.shop.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yami.shop.bean.app.param.UserRegisterParam;
import com.yami.shop.bean.model.User;
import com.yami.shop.bean.param.*;
import com.yami.shop.bean.vo.UserVO;
import com.yami.shop.common.util.PageParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author lgh on 2018/09/11.
 */
public interface UserService extends IService<User> {

    User getUserByUserId(String userId);

    void setUserLevelBylevelId(Integer level, Integer levelType);

    void setUserLevelByGrowth(Integer level, Integer minNeedGrowth, Integer maxNeedGrowth, Integer levelType);
    User getUserDetail(String userId);
    void validate(UserRegisterParam userRegisterParam, String checkRegisterSmsFlag);

    IPage<User> getUserPage(PageParam<User> page, User user);

    Map<String, User> getUserListByUserNumbers(Set<String> keySet);

    CustomerRespParam  countUserByParam(CustomerReqParam param);

    IPage<UserManagerParam> getUserInfoPage(PageParam<User> page, UserManagerReqParam user);

    IPage<UserManagerParam> getUserInfoPage(Page<User> page, UserManagerReqParam user);

    UserManagerParam getuserInfo(String userId);
}
